package com.xuxueli.crawler.parser;

import com.xuxueli.crawler.model.PageRequest;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

/**
 * 页面解析器
 *
 * @author xuxueli 2017-10-17 18:50:40
 *
 * @param <T>   PageVo
 */
public abstract class PageParser<T> {
    
    /**
     * 预解析页面，在页面加载之前调用
     * @param pageRequest       页面请求参数
     */
    public void preParse(PageRequest pageRequest) {
        // TODO
    }

    /**
     * 解析页面信息
     *
     * @param html              页面 HTML 对象
     * @param pageVoElement     pageVo HTML 对象
     * @param pageVo            pageVo object
     */
    public abstract void parse(Document html, Element pageVoElement, T pageVo);

}
